using System;
using CQRS.Reports;

namespace CQRS.Sample.Domain.ReportDtos
{
    public class PlaneDetailsReport : Report
    {
        public PlaneDetailsReport(string planeName, string manufacturer, long yearManufactured, long flightsMadeByPlane,
                                  string pilotName, string pilotSurname, long flightsMadeByPilot, Guid planeId)
            : base(planeId)
        {
            PlaneName = planeName;
            Manufacturer = manufacturer;
            YearManufactured = yearManufactured;
            FlightsMadeByPlane = flightsMadeByPlane;
            PilotName = pilotName;
            PilotSurname = pilotSurname;
            FlightsMadeByPilot = flightsMadeByPilot;
        }

        public PlaneDetailsReport(string planeName, string manufacturer, long yearManufactured, long flightsMadeByPlane,
                                  string pilotName, string pilotSurname, long flightsMadeByPilot, bool hadCrashed,
                                  bool hadBeenRepaired, bool hadEmergencies,
                                  Guid id)
            : base(id)
        {
            PlaneName = planeName;
            Manufacturer = manufacturer;
            YearManufactured = yearManufactured;
            FlightsMadeByPlane = flightsMadeByPlane;
            PilotName = pilotName;
            PilotSurname = pilotSurname;
            FlightsMadeByPilot = flightsMadeByPilot;
            HadBeenRepaired = hadBeenRepaired;
            HadCrashed = hadCrashed;
            HadEmergencies = hadEmergencies;
        }

        public bool HadBeenRepaired { get; set; }
        public bool HadCrashed { get; set; }
        public bool HadEmergencies { get; set; }
        public string PlaneName { get; private set; }
        public string Manufacturer { get; private set; }

        public long YearManufactured { get; private set; }
        public long FlightsMadeByPlane { get; private set; }
        public string PilotName { get; private set; }
        public string PilotSurname { get; private set; }
        public long FlightsMadeByPilot { get; private set; }
    }
}